package com.example.chatgptapplication.utils;


import org.springframework.stereotype.Component;
import org.springframework.web.multipart.MultipartFile;

import java.io.File;
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;

@Component
public class ImageUtil {


    public  Map<String, String> uploadFile(MultipartFile file, String path,String prefix) {
        Map<String, String> map = new HashMap<>();
        if (file.isEmpty()) {
            map.put("msg", "文件为空");
            map.put("filePath", "");
            return map;
        }

        // 获取文件名
        Date date = new Date();
        SimpleDateFormat dateFormat = new SimpleDateFormat("yyyyMMddHHmmss");
        String sj=dateFormat.format(date);
        // 文件名
        String fileName = file.getOriginalFilename();
        //新名字（重复文件名问题）格式为：时间+原名文件名称
        String newName =sj+fileName;
        // 获取文件的后缀名
        assert fileName != null;
        String suffixName = fileName.substring(fileName.lastIndexOf("."));
        String filePath = path+"/" +newName;
        //创建文件夹
        File dest = new File(filePath);
        // 检测是否存在目录
        if (!dest.getParentFile().exists()) {
            dest.getParentFile().mkdirs();
        }
        try {
            // 保存
            file.transferTo(dest);
            map.put("msg", "上传成功");
            String p = "http://localhost:8080/" + prefix +  "/" + newName;
            System.out.println("存文件的路径:" + p);
            map.put("filePath", p);
            return map;
        } catch (IOException e) {
            e.printStackTrace();
        }
        map.put("msg", "上传失败");
        map.put("filePath", "");
        return map;
    }

}
